// 图片上传服务器
const express = require('express')
const app = express()
const port = 9000
const Response = require('./utils/ResponseData')

// 配置跨域
const cors = require('cors')
app.use(cors({
    origin: '*'
}))

// 配置multer文件上传中间件
const multer = require('multer')
// 使用uuid动态生成不同名称的图片
const uuid = require('uuid')
// 配置上传参数
const uploadTools = multer({
    storage: multer.diskStorage({   // 改存储方案将会把文件直接存入磁盘
        destination: (req, file, callback) => {   // 处理存储
            callback(null, 'static')
        },
        filename: (req, file, callback) => {    // 处理文件名，在这对文件名重新命名，防止文件名重复，被替换
            let name = file.originalname
            console.log('原本的文件名',name);
            // 截取文件的扩展名：
            let ext = name.substr(name.lastIndexOf('.'))
            let newName = uuid.v4() + ext
            console.log('处理后',newName);
            // 通过callback进行重新设置
            callback(null, newName)
        }

    })
})
//  配置static目录为静态资源托管文件夹
app.use(express.static('static'))
// 配置上传请求
// 上传action: http://localhost:9000/upload
app.post('/upload', uploadTools.single('file'), (req, res) => {
    // 请求路径
    let url = 'http://localhost:9000/' + req.file.filename
    console.log(url);
    res.send(Response.success(url, '图片上传成功！'))
})

// 监听服务器启动状态
app.listen(port, () => {
    console.log("文件上传服务器启动成功！")
})